Cytosim  PI
Cytoskeleton Simulator
Parameters of Simul

Variables

real time_step
 a small interval of time More...
 
real viscosity
 Ambient viscosity. More...
 
Vector flow
 uniform and constant fluid flow
 
real kT
 Level of Brownian motion in the system = temperature * Boltzman constant. More...
 
unsigned long random_seed
 Seed for random number generator. More...
 
real tolerance
 Desired precision in the motion of the objects. More...
 
real acceptable_rate
 Precision threshold for stochastic events. More...
 
int precondition
 A flag to enable preconditionning when solving the system of equations. More...
 
int steric
 A flag to control the engine that implement steric interactions between objects.
 
real steric_stiffness_push [2]
 Stiffness for repulsive steric interaction.
 
real steric_stiffness_pull [2]
 Stiffness for attractive steric interaction.
 
real steric_max_range
 Lattice size used to determine steric interactions. More...
 
real binding_grid_step
 Lattice size used to determine the attachment of Hand to Fiber. More...
 
int verbose
 level of verbosity
 
std::string config
 Name of configuration file (default = config.cym)
 
std::string property_file
 Name of output property file (also known as properties, default = properties.cmo)
 
std::string trajectory_file
 Name of output trajectory file (also known as trajectory, default = objects.cmo)
 
bool append_file
 If false, any pre-existing trajectory_file will be erased (default = false)
 
std::string display
 Display parameters (see Display parameters: World)
 

Detailed Description

Variable Documentation

real acceptable_rate

A warning message is issued for a rate K if:

In most implementations, a stochastic event (binding/unbinding) may only occur once during a time_step, and this becomes inaccurate if ( K * time_step is not small compared to 1 ).

A user may control the `rate overflow' by adjusting acceptable_rate and monitoring the warning messages.

default value = 0.5

real binding_grid_step

Cytosim uses a divide-and-conquer approach to detect which Fibers are near a given point, witout testing every Fiber. This is necessary to determine onto which Fiber a Hand may bind. The algorithm is based on partitionning Space with a rectangular grid with cells of size binding_grid_step (see FiberGrid).

binding_grid_step affects the execution speed of the algorithm, but not its result. Smaller values of binding_grid_step reduce the number of false positives, but require more memory and housekeeping calculations. Memory requirements also increase with the physical dimensions of the system, to the power DIM (the dimensionality, set at compilation time).

real kT

kT is the product of the absolute temperature in Kelvin, by the Boltzmann constant k (http://en.wikipedia.org/wiki/Boltzmann_constant):

  • k = 1.3806 . 10^-23 Joule/Kelvin = 1.3806 . 10^-5 pN.um / Kelvin
  • Kelvin = Celsius + 273.15

Examples:

  • If temperature T = 24 C = 297 Kelvin, then kT = 1.3806 * 297 = 410 . 10^-5 = 0.0041 pN.um
  • If temperature T = 37 C = 310.15 Kelvin, then kT = 1.3806 * 310.15 = 410 . 10^-5 = 0.00428 pN.um

default value = 0.0042

int precondition

The accepted values of precondition are:

  • 0 : never use preconditionning
  • 1 : always use preconditionning
  • 2 : try the two methods, and use the fastest one

default value = 1

unsigned long random_seed

The simulation uses SFMT, a fast Mersenne Twister to generate pseudo-random numbers http://en.wikipedia.org/wiki/Mersenne_twister

The generator is initialized from random_seed. If ( random_seed == 0 ) then random_seed is calculated from the clock time during initialization.

default value = 0

real steric_max_range

Cytosim uses a divide-and-conquer approach to find pairs of objects that are close enough to interact, based on a dividing the Space with a rectangular grid (see PointGrid).

steric_max_range defines the minimum size of the cells in the grid. A finer grid reduces false positives, but increases the amount of memory occupied by the grid, and the number calculations that are necessary to maintain and clear the grid.

Thus optimal performance is usually obtained for an intermediate value of steric_max_range. However steric_max_range must remain greater than the maximum interaction distance, otherwise some interacting pairs will be missed. Experimentation is usually necessary to find the best value.

The maximum distance at which an object may interact with a sibling is its diameter. Generally, steric_max_range should be greater or equal to the sum of the radiuses, of any two object that may interact. In the case of fiber, the 'interaction-radius' is a combination of the segmentation, and the radius: sqrt( (4/3*segmentation)^2 + 4*radius^2 )

If the parameter is not set, cytosim attempts to calculate steric_max_range automatically.

real time_step

The time_step is the amount of time between two consecutive simulation states. It controls the precision of the simulation, at the expense of computation.
We can guarantee that the numerical result will converge to the true mathematical solution of the equations when time_step becomes infinitely small, but we do not necessarily know how fast this convergence will be.
To check that time_step is appropriate for a particular problem, one should thus run several simulations where time_step is varied systematically.

Useful rules:

  • If the results of two simulations with time_step=h and time_step=h/2 are identical, then h is probably an appropriate time_step.
  • If the simulation has some rate R, then time_step should be such that time_step * R << 1
  • A smaller time step is always preferable, provided that the time to run the simulation remains acceptable to the user.
real tolerance

The motion of the objects is solved with a residual error that is lower than tolerance * B, where B is the typical Brownian displacement of the objects in one time_step.
Thus one should set 0 < tolerance < 1.
Lower values of tolerance lead to increased precision at the expense of CPU time.

default value = 0.05

real viscosity

The viscosity should be given in units of pN.s/um^2 = N.s/m^2 = Pa.s:

  • Water at ambient temperature has a viscosity of 0.001,
  • The viscosity inside an embryo can be ~ 1,
  • The viscosity of the cytoplasm in S.pombe is ~ 1,
  • The viscosity of a cleared cytoplasm can be 0.02.

http://en.wikipedia.org/wiki/Viscosity

default value = 1